package cci;

import cdp.Cliente;
import cdp.Compra;
import cdp.Produto;
import cdp.Relatorio;
import cgd.ClienteDao;
import cgd.CompraDao;
import cgd.ProdutoDao;
import cgd.RelatorioDao;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "RelatorioCtrl", urlPatterns = {"/Relatorio"})
public class RelatorioCtrl extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        RequestDispatcher cih;
        String pagina = "";
        String evento = request.getParameter("evento");

        try {
            if (evento.equals("estoque")) {
                List<Produto> listaProdutos = ProdutoDao.getInstance().obterTodos();
                request.setAttribute("listaProdutos", listaProdutos);

                List<Relatorio> listaRelatorios = RelatorioDao.getInstance().obterTodos();
                request.setAttribute("listaRelatorios", listaRelatorios);

                List<Compra> listaCompras = CompraDao.getInstance().obterTodos();
                request.setAttribute("listaCompras", listaCompras);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        cih = request.getRequestDispatcher("modulos/admin/relatorio/" + evento + ".jsp");
        cih.forward(request, response);
        return;
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        RequestDispatcher cih;
        String pagina = "";

        String evento = request.getParameter("evento");
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
            Date date = sdf.parse(request.getParameter("data"));
            if (evento.equals("clientePesquisar")) {
                List<Cliente> listaCliente = ClienteDao.getInstance().consultarPeriodo(date);
                request.setAttribute("listaClientes", listaCliente);
                pagina = "cliente";
            } else if (evento.equals("compraPesquisar")) {
                List<Compra> listaCompra = CompraDao.getInstance().consultarPeriodo(date);
                request.setAttribute("listaCompras", listaCompra);
                pagina = "compra";
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        cih = request.getRequestDispatcher("modulos/admin/relatorio/" + pagina + ".jsp");
        cih.forward(request, response);
        return;
    }
}
